<?php
	/**
	 * Klass CAPTCHA VIEW - skriver/visar ut allt som användaren ska se.
	 */ 
	class CaptchaView {

		private $captchaInputKey = "captchaInput";
		private $submitKey = "captcha";
		private $newCaptchaImageSubmitKey = "newCaptchaImageSubmit";


		//----- FUNKTION: CREATE CAPTCHA FORM -----------------------------------------------------------------------------------------------------------
		/**
		* Funktionen skapar ett formulär.
		* @return string Formuläret
		*/
		public function CreateCaptchaForm()
		{			
			return "			
			 	<div id='captchaContainerBox'>	 				
	 				<form id='captchaForm'>			 			
 						<h1>Captcha</h1>		 			
			 						 				
		 				<div id='inputContainer'>
		 					<div id='divone'>
		 						<img src='captcha.php' />
		 						<input id='$this->newCaptchaImageSubmitKey' name='$this->newCaptchaImageSubmitKey' type='submit' value='Generera en ny bild' class='enabled'>
		 					</div>
		 			</form>
	 				<form id='captchaForm2'>			 			
			 				<div id='divtwo'>
			 					<lable for='$this->captchaInputKey'>Skriv det som bilden visar: </lable>
				 				<input name='$this->captchaInputKey' type='text' id='$this->captchaInputKey' class='orig'>			 				
				 			</div>
			 			</div>					 			
						<div id='button'>
			 				<input id='$this->submitKey' name='$this->submitKey' type='submit' value='Skicka' class='button'>
			 			</div>			 		
	 				</form>
	 			</div>
			 ";
		}


		//----- FUNKTION: CREATE CAPTCHA IMAGE -----------------------------------------------------------------------------------------------------------
		/**
		* Funktionen skapar captcha bilden genom att lägga in den genererade texten i en bild som i denna funktionen bestämmer hur bilden ska se ut. Storlek och färg med mera.
		* @param string $captchaText Innehåller den genererade texten som ska in i bilden.
		*/
		// Funktion för att skapa en captcha bild.
		public function CreateCaptchaImage($captchaText)
		{
			$dir = "fonts/";

			$image = imagecreatetruecolor(280, 60);
			$text_color = imagecolorallocate($image, 208, 208, 208);

			$black = imagecolorallocate($image, 0, 0, 0);
			$color = imagecolorallocate($image, 200, 100, 90); // Rödfärg
			$white = imagecolorallocate($image, 255, 255, 255);
			
			imagefilledrectangle($image,0,0,399,99,$white);
			imagettftext ($image, 30, 0, 10, 45, $color, $dir."Futura.ttc", $captchaText);

			header ('Content-Type: image/png');
			imagepng($image);
			imagedestroy($image);
		}


		//----- FUNKTION: TRIED TO SUBMIT ------------------------------------------------------------------------------------------------------------------
		/**
		* Funktionen kontrollerar om användaren har klickat på submit-knappen
		* @return bool Retunerar true om användaren har klickat på submit-knappen.
		*/
		public function TriedToSubmit()
		{
			if (isset($_GET[$this->submitKey])) {
				return true;
			}
		}


		//----- FUNKTION: TRIED TO GENERATE NEW CAPTCHA IMAGE -----------------------------------------------------------------------------------------------
		/**
		* Funktionen kontrollerar om användaren har klickat på generera en nya bild-knappen
		* @return bool Retunerar true om användaren har klickat på knappen.
		*/
		public function TriedToGenerateNewCaptchaImage()
		{
			if (isset($_GET[$this->newCaptchaImageSubmitKey])) {
				return true;
			}
		}


		//----- FUNKTION: GET USER INPUT TEXT ---------------------------------------------------------------------------------------------------------------
		/**
		* Funktion som hämtar texten som användaren har skrivit in i input fältet.
		* @return string/bool $captchaInputKey Retunerar texten som snavändaren skrivit in i input fältet annars false.
		*/
		public function GetUserInputText()
		{
			if (isset($_GET[$this->captchaInputKey])) {					
				return $_GET[$this->captchaInputKey];	 
					 
			}
			return false;
		}
	}
?>